David,
your post isn't entirely accurate.
Mach 3 (and KMotionCNC) do all the trajectory planning, before passing the motion to the motion controller plugin, in the format of small motion segments. The plugin then takes those segments and converts them into whatever format the plugin/motion controller programmer has decided works best for their hardware, and sends them out via USB. The motion controller then takes those commands and converts them to suitable outputs i.e. step/dir pulses.
To compare the KFlop and a UC controller, if running Mach 3, and solely using step/dir, there won't be much difference. Mach3 and the plugin is handling all of the configuration for the UC, and 90% of it for the KFlop. For the KFlop, you'd need a basic C program to initialise the coordinated motion system and tell it what kind of motion output is needed i.e. step/dir pulses. Other than that, there's little difference in the basic systems.
The great benefit of the KFlop is the ability to run custom C programs within the KFlop. Other controllers rely on the host computer handling input/outputs, so you'll always have a delay when responding to input changes, while the change gets transferred from the controller to the host computer. With Mach3, you're also limited by the 10Hz macro update frequency. With the KFlop, you can handle input changes without the host computer even knowing. You can also program it to do things not possible with Mach alone.
As for your MPG issue, I'd hazard a guess it's more likely some form of USB host/hub issue, or resource conflict. At some point in the computer architecture, all the USB ports go through the same resources. All it takes is for one device to cause issues at that point, and it can cause issues with other devices. Things like human interfaces i.e. keyboard/mouse you most likely would never notice, as unless it's causing hundreds of milliseconds of delays, you'd never likely notice, however motion controllers relying on data being handled within a few milliseconds are going to have problems.
Out of curiosity, did you try different USB ports? Ideally on separate USB root hubs.
Older computers would generally only have a single USB root hub, which would then be split via more hubs, just like taking one USB port, and plugging an external hub in to get more, all USB devices have to transfer data through that single root hub.
Moray